次の方法で共有


System.Collections.ObjectModel.KeyedCollection<TKey,TItem>.ChangeItemKey メソッド

この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。

このメソッドは ChangeItemKey(TItem, TKey) 、埋め込まれたキーを変更しません。参照ディクショナリに保存されている itemキーを置き換えるだけです。 したがって、埋め込まれているキーと異なる場合newKeyは、返されるitemGetKeyForItemキーを使用してアクセスitemすることはできません。

ルックアップ ディクショナリがない場合、 KeyedCollection<TKey,TItem> このメソッドは何も実行しません。

a 内のすべてのキーは KeyedCollection<TKey,TItem> 一意である必要があります。 キーを指定することはできません null

このメソッドは、O(1) 操作です。

実装者向けの注意事項

アイテムに埋め込まれているキーを変更する前に、このメソッドを呼び出して、ルックアップ ディクショナリ内のキーを更新する必要があります。 ディクショナリ作成のしきい値が -1 の場合、このメソッドを呼び出す必要はありません。

メソッドを ChangeItemKey 派生クラスのパブリック メソッドとして公開しないでください。 このメソッドを誤用すると、ルックアップ ディクショナリが項目キーと同期されません。 たとえば、キー null を設定して別の値に設定すると、アイテムの複数のキーがルックアップ ディクショナリに追加されます。 このメソッドを内部で公開して、変更可能な項目キーを許可します。項目のキーが変更されると、このメソッドを使用してルックアップ ディクショナリ内のキーが変更されます。